package datasv.framework_datasv;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;

import org.omg.CORBA.FREE_MEM;

import po.CourseModelPO;
import po.ModelPO;
import po.SubModelPO;
import resultmessage.FrameworkRM;

public interface FrameworkDatasv extends Remote {
	public ModelPO getModel(String collegeID,String modelID) throws RemoteException;
	public FrameworkRM addModel(String collegeID, ModelPO model) throws RemoteException;
	public FrameworkRM  deleteModel(String collegeID,String modelID) throws RemoteException;
	public FrameworkRM updateModel(String collegeID, ModelPO po) throws RemoteException;
	public List<SubModelPO> getAllSubModelOfModel(String collegeID, String modelID) throws RemoteException;
	public SubModelPO getSubModel(String collegeID,String modelID,String subModelID) throws RemoteException;
	public FrameworkRM addSubModel(String collegeID, String modelID, SubModelPO po) throws RemoteException;
	public FrameworkRM deleteSubModel(String collegeID, String modelID, String SubModelID) throws RemoteException;
	public FrameworkRM updateSubModel(String collegeID, String modelID, SubModelPO po) throws RemoteException;
	
	public FrameworkRM deleteCouOfSubModel(String courseID,String subModelID) throws RemoteException;
	public FrameworkRM addCouOfSubModel(String courseID,String subModelID) throws RemoteException;
	public CourseModelPO getSubModelOfCou(String courseID) throws RemoteException;
	public FrameworkRM updateSubModelOfCou (String courseID, String submodelID) throws RemoteException;
	
	public boolean canChooseCurriculum() throws RemoteException;
	public boolean canChooseCrossMajor() throws RemoteException;
	public boolean canChoosePublic() throws RemoteException;
	
	public boolean changeChooseCurriculum() throws RemoteException;
	public boolean changeChooseCrossMajor() throws RemoteException;
	public boolean changeChoosePublic() throws RemoteException;
	
	public List<ModelPO> getCollegeModel(String collegeID) throws RemoteException;
	
	public String addModelReturnID(String collegeID,ModelPO model)  throws RemoteException;
	
	public String addSubModelReturnID(String collegeID,String modelID,SubModelPO submodel)  throws RemoteException;
}
